跳到主要内容

1.5 二进制编码器

编码器是一种将熟悉的数字、字符或符号转换为编码格式的设备。它接收字母字符和十进制数字作为输入,并以输入的编码形式产生输出。

它将给定信息编码为更紧凑的形式。换句话说,它是一种组合逻辑电路,执行与译码器相反的功能。

编码器主要用于减少表示给定信息所需的位数。在数字系统中,编码器用于传输信息。因此,传输链路使用较少的线路来传输编码后的信息。

此外,这些编码器还用于对要存储以供后续使用的数据进行编码,因为它可以减少在可用空间上存储的位数。让我们讨论各种类型的二进制编码器。

二进制编码器

二进制编码器有 2n2^n 个输入线和 nn 个输出线,因此它将来自 2n2^n 个输入的信息编码为一个 nn 位代码。在所有输入线中,一次只有一个输入线被激活,根据输入线,它产生 nn 位输出代码。

下图展示了二进制编码器的框图,它包含 2n2^n 个输入线和 nn 个输出线。它将十进制数字转换为二进制数字。

编码器的输出线对应于输入值的二进制等效形式或二进制的 BCD(二进制编码的十进制)编码形式。其中一些二进制编码器包括十进制到二进制编码器、十进制到八进制、八进制到二进制编码器、十进制到 BCD 编码器等。

根据输入线的数量,数字或二进制编码器以 2 位、3 位或 4 位代码的形式产生输出代码。

alt text

4 到 2 位二进制编码器

4 输入编码器的框图和真值表如下图所示。真值表包含四行,因为假设只有一个输入的值为 1,然后与该启用输入相关联的对应二进制代码显示在输出端。

从表中可以看出,当输入 w1w_1w3w_3 为 1 时,输出 Y0Y_0 为 1;同样,当输入 w2w_2w3w_3 为 1 时,输出 Y1Y_1 被设置为 1。

alt text

4 到 2 编码器的输出由一组或门实现的逻辑电路生成,如下图所示。在图 a 中,如果激活的输入是 I0I_0 输入(I0=1I_0 = 1)或者没有任何输入被激活,即所有输入均为零,则编码器的输出相同。

这会在编码输出中引起歧义。为了避免这种歧义,可以添加一个额外的输出作为有效的编码输出,因此当 I0I_0 等于 1 时,该输出取值为 1。

alt text

十进制到 BCD 编码器

这种类型的编码器通常包含十个输入线和四个输出线。每个输入线对应于每个十进制数字,四个输出对应于 BCD 代码。

该编码器接收解码后的十进制数据作为输入,并将其编码为 BCD 输出,该输出在输出线上可用。

下图展示了十进制到 BCD 编码器的基本逻辑符号及其真值表。真值表表示每个十进制数字的 BCD 代码。

从表中可以得出 BCD 位与十进制数字之间的关系。需要注意的是,没有明确的输入线用于十进制零。当出现这种情况时,即十进制输入 1 到 9 均为零,则 BCD 输出为 0000。

alt text

从上表中,我们得到以下表达式:

Y3=D8+D9Y_3 = D_8 + D_9
Y2=D4+D5+D6+D7Y_2 = D_4 + D_5 + D_6 + D_7
Y1=D2+D3+D6+D7Y_1 = D_2 + D_3 + D_6 + D_7
Y0=D1+D3+D5+D7+D9Y_0 = D_1 + D_3 + D_5 + D_7 + D_9

从上述表达式中,可以使用一组或门实现十进制到 BCD 编码器逻辑电路,如下图所示。

alt text

八进制到二进制编码器

八进制到二进制编码器包含八个输入线和三个输出线。每个输入线对应于每个八进制数字,三个输出生成对应的二进制代码。

在编码器中,必须假设在任何给定时间只有一个输入是激活的或值为 1,否则电路将失去意义。下图展示了八进制到二进制编码器的逻辑符号及其真值表。

alt text
alt text

从上表中可以看出,如果数字 D4D_4D5D_5D6D_6D7D_7 中的任何一个为 1,则输出 Y2Y_2 变为 1。因此,可以将其表达式写为:

Y2=D4+D5+D6+D7Y_2 = D_4 + D_5 + D_6 + D_7
同样,Y1=D2+D3+D6+D7Y_1 = D_2 + D_3 + D_6 + D_7,
Y0=D1+D3+D5+D7Y_0 = D_1 + D_3 + D_5 + D_7

还需要注意的是,D0D_0 并未出现在任何表达式中,因此被视为无关项。从上述表达式中,可以使用一组或门实现八进制到二进制编码器,如下图所示。

alt text

在八进制到二进制编码器中存在一种歧义:当所有输入均为零时,会产生一个全为0的输出。此外,当 D0D_0 为1时,生成的输出也为零。这是这种编码器的一个主要问题。可以通过增加一个额外的输出来指定没有任何输入被激活的条件,从而解决这一问题。

数字编码器应用

编码器是数字系统中非常常见的电子电路。在袖珍计算器中,它们用于将十进制值转换为二进制形式,以便执行二进制函数,如加法、减法、乘法等。

它们还用于响应运动产生数字信号,这些信号被分为轴编码器和线性编码器。让我们简要讨论键盘编码器的应用。

键盘编码器

这种类型的编码器功能是生成与键盘上按下的字母数字字符键对应的二进制代码。下图展示了一个键盘编码器,它使用二极管矩阵将 10 个十进制数字编码为 BCD 代码。在这个电路中,BCD 数据存储在 S-R 触发器中。

alt text

当对应于一个十进制数字的键被按下时,选定的二极管通过正电压正向偏置,并且这些二极管连接到 S-R 触发器的置位和复位端。二极管的排列方式使得每个触发器置位或复位,以产生 4 位 BCD 代码。

假设对应于十进制数字 7 的键被按下,连接到 Q4Q_4Q2Q_2Q1Q_1 的 S 输入端的二极管正向偏置,同时连接到 Q8Q_8 的 R 输入端的二极管也是如此。因此,输出的 BCD 代码为 0111。

从编码器的逻辑图可以看出,每个 S 和 R 输入端的二极管配置本质上是一个二极管或门。这种类型的二极管矩阵编码器用于许多具有键盘作为用户数据接口的电子设备的印刷电路板上。